package com.zjj.learn.javaplus.pkg02.demo26;

/**
 * 单例模式之：懒汉式
 **/
public class SingleInstance2 {
    private static volatile   SingleInstance2 INSTANCE;

    /**
     * 单例模式必须私有化构造方法
     **/
    private SingleInstance2() {
    }

    /**
     * 向外暴露一个公有的受保护的获取实例的方法
     **/
    public static SingleInstance2 getInstance(){
        if(INSTANCE == null){
            synchronized (SingleInstance2.class){
                if(INSTANCE == null){
                    INSTANCE = new SingleInstance2();
                }
            }
        }
        return INSTANCE;
    }
}
